package org.dreamwork.jasmine2.engine;

import org.dreamwork.jasmine2.events.IValidateListener;
import org.dreamwork.jasmine2.web.IWebControl;

/**
 * 可验证对象
 *
 * <p>可验证对象定义了一组接口对控件取值进行验证。通过向对象注册监听器完成操作
 *
 * Created by IntelliJ IDEA.
 * User: seth
 * Date: 2009-7-22
 * Time: 10:53:49
 */
public interface IValidatable {
    /**
     * 添加监听器
     * @param listener 监听器
     */
    void addValidateListener (IValidateListener listener);

    /**
     * 删除监听器
     * @param listener 监听器
     */
    void removeValidateListener (IValidateListener listener);

    /**
     * 获取所有监听器
     * @return 所有监听器
     */
    IValidateListener[] getValidateListners ();

    /**
     * 触发验证事件
     * @param sender 事件触发者
     * @return 验证结果
     */
    boolean fireValidateListeners (IWebControl sender);
}